package com.zhongen.oa.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.zhongen.admin.api.entity.SysFile;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 项目基本信息表
 *
 * @author Code Generator
 * @date 2024-01-15 12:07:54
 */
@Data
@TableName("project_basic_info")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "项目基本信息表")
public class ProjectBasicInfoEntity extends Model<ProjectBasicInfoEntity> {

	/**
	 * id
	 */
	@TableId(type = IdType.ASSIGN_ID)
	@Schema(description = "id")
	@ExcelIgnore
	private Long id;

	/**
	 * 项目编号
	 */
	@Schema(description = "项目编号")
	@ExcelProperty("项目编号")
	private String projectNumber;

	/**
	 * 项目名称
	 */
	@Schema(description = "项目名称")
	@ExcelProperty("项目名称")
	private String projectName;

	/**
	 * 项目类型
	 */
	@Schema(description = "项目类型")
	@ExcelProperty("项目类型")
	private String projectType;

	/**
	 * 项目类型
	 */
	@Schema(description = "项目缩写")
	@ExcelProperty("项目缩写")
	private String projectAbbr;

	/**
	 * 省份
	 */
	@Schema(description = "省份")
	@ExcelProperty("省份")
	private String province;

	/**
	 * 地区
	 */
	@Schema(description = "地区")
	@ExcelProperty("地区")
	private String area;

	/**
	 * 项目内容
	 */
	@Schema(description = "项目内容")
	@ExcelProperty("项目内容")
	private String projectContent;

	/**
	 * 项目立项日期
	 */
	@Schema(description = "项目立项日期")
	@ExcelProperty("项目立项日期")
	private LocalDate projectApprovalDate;

	/**
	 * 项目签订日期
	 */
	@Schema(description = "项目签订日期")
	@ExcelProperty("项目签订日期")
	private LocalDate projectSigningDate;

	/**
	 * 项目计划开始日期
	 */
	@Schema(description = "项目计划开始日期")
	@ExcelProperty("项目计划开始日期")
	private LocalDate planStartDate;

	/**
	 * 项目计划结束日期
	 */
	@Schema(description = "项目计划结束日期")
	@ExcelProperty("项目计划结束日期")
	private LocalDate planEndDate;

	/**
	 * 项目实际开始日期
	 */
	@Schema(description = "项目实际开始日期")
	@ExcelProperty("项目实际开始日期")
	private LocalDate realStartDate;

	/**
	 * 项目实际结束日期
	 */
	@Schema(description = "项目实际结束日期")
	@ExcelProperty("项目实际结束日期")
	private LocalDate realEndDate;

	/**
	 * 项目当前状态
	 */
	@Schema(description = "项目当前状态")
	@ExcelProperty("项目当前状态")
	private String projectStatus;

	/**
	 * 项目立项状态
	 */
	@Schema(description = "项目立项状态")
	@ExcelProperty("项目立项状态")
	private String projectApprovalStatus;

	/**
	 * 项目进度
	 */
	@Schema(description = "项目进度")
	@ExcelProperty("项目进度")
	private String projectSchedule;

	/**
	 * 我方项目负责人
	 */
	@Schema(description = "我方项目负责人")
	@ExcelProperty("我方项目负责人")
	private String projectMyHead;

	/**
	 * 我方项目技术负责人
	 */
	@Schema(description = "我方技术负责人")
	@ExcelProperty("我方技术负责人")
	private String projectMyTechnologyHead;

	/**
	 * 我方营销负责人
	 */
	@Schema(description = "我方营销负责人")
	@ExcelProperty("我方营销负责人")
	private String projectMyMarketHead;

	/**
	 * 我方商务负责人
	 */
	@Schema(description = "我方商务负责人")
	@ExcelProperty("我方商务负责人")
	private String projectMyBusinessHead;

	/**
	 * 甲方单位
	 */
	@Schema(description = "甲方单位")
	@ExcelProperty("甲方单位")
	private String partAUnit;

	/**
	 * 过手单位
	 */
	@Schema(description = "过手单位")
	@ExcelProperty("过手单位")
	private String passingUnit;

	/**
	 * 甲方负责人姓名
	 */
	@Schema(description = "甲方负责人姓名")
	@ExcelProperty("甲方负责人姓名")
	private String partAPersonName;

	/**
	 * 甲方负责人联系方式
	 */
	@Schema(description = "甲方负责人联系方式")
	@ExcelProperty("甲方负责人联系方式")
	private String partAPersonPhone;

	/**
	 * 前期定价(单位:万元)
	 */
	@Schema(description = "前期定价(单位:万元)")
	// @ExcelProperty("前期定价(单位:万元)")
	@ExcelIgnore
	private BigDecimal prePricing;

	/**
	 * 招投标
	 */
	@Schema(description = "招投标")
	// @ExcelProperty("招投标")
	@ExcelIgnore
	private String tenderAndBid;

	/**
	 * 中标通知
	 */
	@Schema(description = "中标通知")
	// @ExcelProperty("中标通知")
	@ExcelIgnore
	private String noticeOfAward;

	/**
	 * 项目年份
	 */
	@Schema(description = "项目年份")
	@ExcelProperty("项目年份")
	private String projectYear;

	/**
	 * 商务备注
	 */
	@Schema(description = "商务备注")
	// @ExcelProperty("商务备注")
	@ExcelIgnore
	private String businessRemark;

	/**
	 * 中标服务费(单位:万元)
	 */
	@Schema(description = "中标服务费(单位:万元)")
	// @ExcelProperty("中标服务费(单位:万元)")
	@ExcelIgnore
	private BigDecimal bidServiceFee;

	/**
	 * 中标服务费发票领取情况
	 */
	@Schema(description = "中标服务费发票领取情况")
	// @ExcelProperty("中标服务费发票领取情况")
	@ExcelIgnore
	private String bidServiceFeeInvoice;

	/**
	 * 备注
	 */
	@Schema(description = "备注")
	@ExcelProperty("备注")
	private String remark;

	/**
	 * 创建时间
	 */
	@TableField(fill = FieldFill.INSERT)
	@Schema(description = "创建时间")
	@ExcelIgnore
	private LocalDateTime createTime;

	/**
	 * 更新时间
	 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	@Schema(description = "更新时间")
	@ExcelIgnore
	private LocalDateTime updateTime;

	/**
	 * 删除状态:0-未删除
	 */
	@TableLogic
	@Schema(description = "删除标记,1:已删除,0:正常")
	@TableField(fill = FieldFill.INSERT)
	@ExcelIgnore
	private String delFlag;

	@Schema(description = "部门ID")
	@ExcelIgnore
	private Long deptId;

	@Schema(description = "实例ID")
	@ExcelIgnore
	private String InstanceId;

	@Schema(description = "实例ID")
	@ExcelIgnore
	private String InstanceNo;

	/**
	 * 创建人
	 */
	@TableField(fill = FieldFill.INSERT)
	@Schema(description = "创建人")
	@ExcelIgnore
	private String createBy;

	/**
	 * 修改人
	 */
	@TableField(fill = FieldFill.UPDATE)
	@Schema(description = "修改人")
	@ExcelIgnore
	private String updateBy;

	@TableField(exist = false)
	@Schema(description = "附件列表")
	@ExcelIgnore
	private List<SysFile> fileList;

}
